<?php
// 应用公共文件
//全局加密key
define('AUTH_KEY','MlFZrLwD9uV273rU');



if (!function_exists('md5_password')) {

    /**
     * md5根据加盐值加密密码
     * @param string $password 加密字符串
     * @param string $salt 加密盐值
     * @return string 返回结果
     */
    function md5_password($password,$salt = '')
    {
        return md5(md5($password).md5(AUTH_KEY).md5($salt));
    }

}

if (!function_exists('md5_password_check')) {

    /**
     * 检查md5加密的密码是否匹配
     * @param string $password 加密字符串
     * @param string $sql_password 需要检查的密码
     * @param string $salt 加密盐值
     * @return string 返回结果
     */
    function md5_password_check($password,$sql_password,$salt = '')
    {
        return $sql_password == md5_password($password,$salt);
    }
}

if (!function_exists('get_real_ip')) {

    /**
     * 获取客户端IP
     * @return string 返回结果
     */
    function get_real_ip()
    {
        $ip = '0.0.0.0';
        //客户端IP 或 NONE 
        if(!empty($_SERVER["HTTP_CLIENT_IP"])){
            $ip = $_SERVER["HTTP_CLIENT_IP"];
        }
        //多重代理服务器下的客户端真实IP地址（可能伪造）,如果没有使用代理，此字段为空
        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
            if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
            for ($i = 0; $i < count($ips); $i++) {
                if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
                    $ip = $ips[$i];
                    break;
                }
            }
        }
        //客户端IP 或 (最后一个)代理服务器 IP 
        return ($ip = '0.0.0.0' ? $_SERVER['REMOTE_ADDR'] : $ip);
    }
}

if (!function_exists('random_string')) {

    /**
     * 随机生成指定位数字符串
     * @param number $length 指定位数
     * @return string 返回结果
     */
    function random_string($length = 6)
    {
        // 字符集
        $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
        $password = '';
        for ($i = 1; $i <= $length; $i++)
        {
            // mt_rand取随机数
            $password .= $chars[mt_rand(0, strlen($chars) - 1)];
        }
        return $password;
    }
}
